/*
 * to use online script you can use jquery getScript plugin as follows:
 * 
 * $.getScript('http://sisense.com/abc.js', function(data, textStatus)
 * {
 *		// your code which requires abc.js here
 * });
 * 
 * // more info at: http://api.jquery.com/jQuery.getScript/
 *
 */


/*
 * set to true when replacing widget rendering engine.
 */
this.isCustom = true;

/*
 * exectuted after the widget controller was initialized, useful when overriding entire widget in order to instantiate entirely different implementation.
 *
 * @param {args} wraps all function arguments, including widget, dashboard and widget controller instances.
 *
 */
this.init = function (args) {

};

/*
 * executed before the widget query result is loaded to the DOM and allows canceling such beavior and replace it with custom widget implementation.
 * to cancel the default population just set 'args.cancel = true' and the widget default population will be ignored.
 *
 * @param {args} wraps all function arguments, including query result, widget, dashboard and widget controller instances.
 *
 */
this.beforeResultLoaded = function (args) {
	
	// 1. Get Value from results
	var row = args.result.getRow(0);
	var value = row[0];

	// 2. Choose image for result
	var imgDiv;

	switch (value) {
		
		case 'Moderately Lower to Sideways':
			imgDiv = $('<img src="/arrows/arrow_down_right.png" alt="Arrow"/>');
			break;
		case 'Moderately Highter to Sideways':
			imgDiv = $('<img src="/arrows/arrow_up_right.png" alt="Arrow"/>');
			break;
		case 'Higher':
			imgDiv = $('<img src="/arrows/arrow_up.png" alt="Arrow"/>');
			break;
		case 'Lower':
			imgDiv = $('<img src="/arrows/arrow_down.png" alt="Arrow"/>');
			break;   
		case 'Sideways':
			imgDiv = $('<img src="/arrows/arrow_right.png" alt="Arrow"/>');
			break;                        
	}

	// 3. Render the image to the pivot
	var pivotId = $(args.element).attr('id');
	var pivot = $('#'+pivotId);	
	pivot.empty();
	pivot.append(imgDiv);
};

/*
 * executed after the widget result were added to the DOM. useful to apply DOM tweaks after query result population.
 *
 * @param {args} wraps all function arguments, including query result, widget, dashboard and widget controller instances.
 *
 */
this.afterResultLoaded = function (args) {

    
};

/*
 * exectuted after all dashboard widget models were initialiezed. useful for binding with other widget events.
 *
 * @param {args} wraps all function arguments, including widget, dashboard and widget controller instances.
 *
 */
this.handleDashboardInitialized = function (args) {
};
